(function($) {
    $(document).ready(function() {
        // 格式化 JSON 输入框
        function formatJsonField(field) {
            try {
                let value = field.val();
                if (value) {
                    let jsonObj = JSON.parse(value);
                    field.val(JSON.stringify(jsonObj, null, 2));
                }
            } catch (e) {
                console.log('JSON 格式化失败:', e);
            }
        }

        // 处理所有 JSON 字段
        $('#id_test_data, #id_expected_results, #id_dependencies, #id_pre_conditions, #id_post_conditions').each(function() {
            let field = $(this);
            
            // 初始格式化
            formatJsonField(field);

            // 失去焦点时格式化
            field.on('blur', function() {
                formatJsonField(field);
            });
        });

        // 添加验证
        $('form').on('submit', function(e) {
            let hasError = false;
            $('#id_test_data, #id_expected_results').each(function() {
                try {
                    JSON.parse($(this).val());
                } catch (e) {
                    alert('请检查 JSON 格式是否正确：' + $(this).attr('name'));
                    hasError = true;
                    return false;
                }
            });
            if (hasError) {
                e.preventDefault();
            }
        });
    });
})(django.jQuery); 